﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AutomationTools;
using AutomationTools.Procedimentos.Acao.Transformacao;
using System.Net;
using System.IO;
using System.Web.Security;

namespace AutomationToolsSample
{
    public partial class Form7 : Form
    {
        public Form7()
        {
            InitializeComponent();
        }

        private void Form7_Load(object sender, EventArgs e)
        {
            string usuario = "bruno.romano";
            string senha = "bcsul123";

            ProcedimentoController controller = new ProcedimentoController(
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.AbrirURL("http://bcsulcpp2.homolog.net/Login.aspx"),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.AguardarReadyStateComplete(),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.PreencherCampoTexto("lgnSite_UserName", usuario),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.PreencherCampoTexto("lgnSite_Password", senha),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.SalvarPrintTela("Recursos\\print0.png"),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.ExecutarClickBotao("lgnSite_LoginButton"),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.AguardarReadyStateComplete(x => x.Document.Url.ToString().EndsWith("Pendencia.aspx")),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.SalvarPrintTela("Recursos\\print1.png"),
                    new AutomationTools.Procedimentos.SimulacaoUso.Web.ObterHTMLCorpo(),
                    new AutomationTools.Procedimentos.Acao.Transformacao.RegexParseObject<Pendencias>()
                );

            var retorno = (Pendencias)controller.ExecutarProcedimentos();

            lblResult.Text = "";
            foreach (var item in retorno.Itens)
            {
                lblResult.Text += string.Format("{0} --> {1}" + Environment.NewLine, item.Nome, item.Quantidade);
            }
        }

        [CanRegexParse]
        public class Pendencias
        {
            [RegexParse(@"<td[^<>]*>([^<>]+) - <[^<>]+>([^<>]+)</span>", IsArray = true)]
            public Pendencia[] Itens { get; set; }
        }

        [CanRegexParse]
        public class Pendencia
        {
            [RegexParse(1)]
            public string Nome { get; set; }
            [RegexParse(2)]
            public string Quantidade { get; set; }
        }
    }
}
